﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Brio.Framework
{
    public class Settings
    {
        static Settings()
        {
            // TODO: Read in settings from XML

            // Default Parameters are shown below
            ExploratoryRatio = 0.60;
            Runs = 1;
            Generations = 100;
            PopulationSize = 20;
            SplitOperatorPercentage = 20;
            JoinOperatorPercentage = 20;
            InjectOperatorPercentage = 50;
            CrossoverOperatorPercentage = 100;
            GaussianMutationSigma = 4;
            GaussianMutationPercentage = 0;
            MelodicSmoothingPercentage = 5;
            BestPercentage = 5;
            Measures = 5;
            Scale = ScaleMask.CMajor;
            TimeSignature = new int[] { 4, 4 };
            Tempo = 120;
        }

        public static double ExploratoryRatio
        { get; set; }

        public static int[] TimeSignature
        { get; set; }

        public static int Tempo
        { get; set; }

        public static int Measures
        { get; set; }

        public static ScaleMask Scale
        { get; set; }

        public static int MelodicSmoothingPercentage
        { get; set; }

        public static int GaussianMutationPercentage
        { get; set; }

        public static int GaussianMutationSigma
        { get; set; }

        public static int JoinOperatorPercentage
        { get; set; }

        public static int SplitOperatorPercentage
        { get; set; }

        public static int InjectOperatorPercentage
        { get; set; }

        public static int CrossoverOperatorPercentage
        { get; set; }

        public static int BestPercentage
        { get; set; }

        public static int Runs
        { get; set; }

        public static int Generations
        { get; set; }

        public static int PopulationSize
        { get; set; }
       

    }
}
